1. Field of the Invention
The present invention relates to computer hardware performance monitoring and more particularly to an apparatus and method for detecting and forecasting resource bottlenecks.
2. Earlier Related Developments
Computer systems may interconnect in complex computer networks, to share data, services and resources associated with local and/or distributed computing environments. Computer systems can include a plurality of processors, personal computers, workstations, storage servers, database servers, mainframes, network attached devices, routers, firewalls, and other devices, all interconnected by wired or wireless interconnection networks. A critical resource is a part of the system upon which the overall performance of the system relies significantly. As such, when a critical resource is operated in a failed, saturated, or near-saturation regime, it may become a resource bottleneck to the efficient operation of the system. To maintain or optimize performance, it is important to detect and locate resource bottlenecks either when they occur or in a predictive manner before they take place in order to take corrective or preventative actions. Methods relating to bottleneck detection are related generally to the field of capacity management. In one such method, a device, such as a processor, is measured and compared to whether it is operating near capacity by comparing the value of its utilization to a known maximum value threshold. Other methods expand on this approach to allow different bottleneck detection strategies based on simple threshold comparisons such as where bottlenecks are declared when one or more subsystems are operating near saturation even though other subsystems are under utilized. Examples of bottleneck methods are illustrated in U.S. Pat. Nos. 6,557,035, 6,470,464 and 6,457,143, all of which are incorporated by reference herein in their entirety. A problem arises in that some methods rely on known maximum values for resource utilization that may not be available such as where the throughput of a large scale storage system is dependent on the kinds of data that are stored on the system, the status of the physical storage medium, and/or its internal interconnect network as examples. In this instance, the maximum throughput may be time variant and standard bottleneck detection would fail. Accordingly, there is a desire to provide a resource bottleneck detection, prevention and/or elimination method and system that is simple, and robust.